// These are meant to be typed into the REPL. You can also run
// scala -Xnojline < repl-session.scala to run them all at once.
/**
  * 注意：1、如果字段是私有的，则getter和setter方法也是私有的。
  * 2、如果字段是val，则只有getter方法被生成。
  * 3、如果你不需要任何getter或setter，可以将字段声明为private[this].
  *
  * 7.3对象私有字段
  * private[this]定义对象私有的字段，不生成get、set方法。
  */
class Counter {
  private var value = 0
  def increment() { value += 1 }

  def isLess(other : Counter) = value < other.value 
    // Can access private field of other object
}

class Counter2 {
  private[this] var value = 0
  def increment() { value += 1 }

  def isLess(other : Counter) = value < other.value 
    // Can't access private[this] field of other object
}



